Add API to get x position of treeview columns
authorMatthias Clasen <mclasen@redhat.com>
Fri, 10 Jun 2011 04:09:25 +0000 (00:09 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 10 Jun 2011 04:17:56 +0000 (00:17 -0400)
Their width was already available.

gtk/gtk.symbols
gtk/gtktreeviewcolumn.c
gtk/gtktreeviewcolumn.h

index c6def71be019380c760f8ae1701133f3f4f0cfac..97b97901b24c355649231cf79ee2833f4e17ee29 100644 (file)
@@ -3278,6 +3278,7 @@ gtk_tree_view_column_get_type
 gtk_tree_view_column_get_visible
 gtk_tree_view_column_get_widget
 gtk_tree_view_column_get_width
+gtk_tree_view_column_get_x_offset
 gtk_tree_view_column_new
 gtk_tree_view_column_new_with_area
 gtk_tree_view_column_new_with_attributes
index bd8cebe18e05a9f3f9e564da3cb0b6950f0ef9d9..c97f8e55d3dce5a9b53baf77f24c332a6b6e369d 100644 (file)
@@ -142,6 +142,7 @@ struct _GtkTreeViewColumnPrivate
   GtkTreeViewColumnSizing column_type;
   gint padding;
   gint resized_width;
+  gint x_offset;
   gint width;
   gint fixed_width;
   gint min_width;
@@ -183,6 +184,7 @@ enum
   PROP_0,
   PROP_VISIBLE,
   PROP_RESIZABLE,
+  PROP_X_OFFSET,
   PROP_WIDTH,
   PROP_SPACING,
   PROP_SIZING,
@@ -256,6 +258,16 @@ gtk_tree_view_column_class_init (GtkTreeViewColumnClass *class)
                                                          FALSE,
                                                          GTK_PARAM_READWRITE));
   
+  g_object_class_install_property (object_class,
+                                   PROP_X_OFFSET,
+                                   g_param_spec_int ("x-offset",
+                                                     P_("X position"),
+                                                     P_("Current X position of the column"),
+                                                     -G_MAXINT,
+                                                     G_MAXINT,
+                                                     0,
+                                                     GTK_PARAM_READABLE));
+
   g_object_class_install_property (object_class,
                                    PROP_WIDTH,
                                    g_param_spec_int ("width",
@@ -687,6 +699,11 @@ gtk_tree_view_column_get_property (GObject         *object,
                            gtk_tree_view_column_get_resizable (tree_column));
       break;
 
+    case PROP_X_OFFSET:
+      g_value_set_int (value,
+                       gtk_tree_view_column_get_x_offset (tree_column));
+      break;
+
     case PROP_WIDTH:
       g_value_set_int (value,
                        gtk_tree_view_column_get_width (tree_column));
@@ -2049,6 +2066,24 @@ gtk_tree_view_column_get_width (GtkTreeViewColumn *tree_column)
   return tree_column->priv->width;
 }
 
+/**
+ * gtk_tree_view_column_get_x_offset:
+ * @tree_column: A #GtkTreeViewColumn.
+ * 
+ * Returns the current X offset of @tree_column in pixels.
+ * 
+ * Return value: The current X offset of @tree_column.
+ *
+ * Since: 3.2
+ */
+gint
+gtk_tree_view_column_get_x_offset (GtkTreeViewColumn *tree_column)
+{
+  g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN (tree_column), 0);
+
+  return tree_column->priv->x_offset;
+}
+
 gint
 _gtk_tree_view_column_request_width (GtkTreeViewColumn *tree_column)
 {
@@ -2113,6 +2148,7 @@ _gtk_tree_view_column_allocate (GtkTreeViewColumn *tree_column,
   if (priv->width != width)
     gtk_widget_queue_draw (priv->tree_view);
 
+  priv->x_offset = x_offset;
   priv->width = width;
 
   gtk_cell_area_context_allocate (priv->cell_area_context, priv->width - priv->padding, -1);
@@ -2136,6 +2172,7 @@ _gtk_tree_view_column_allocate (GtkTreeViewColumn *tree_column,
                              TREE_VIEW_DRAG_WIDTH, allocation.height);
     }
 
+  g_object_notify (G_OBJECT (tree_column), "x-offset");
   g_object_notify (G_OBJECT (tree_column), "width");
 }
 
index f96417728372da4fa8b355b55b13ad58bf456f82..c6b2e792aece4e303af3ae940ac0942a039602e8 100644 (file)
@@ -142,6 +142,7 @@ gboolean                gtk_tree_view_column_get_resizable       (GtkTreeViewCol
 void                    gtk_tree_view_column_set_sizing          (GtkTreeViewColumn       *tree_column,
                                                                  GtkTreeViewColumnSizing  type);
 GtkTreeViewColumnSizing gtk_tree_view_column_get_sizing          (GtkTreeViewColumn       *tree_column);
+gint                    gtk_tree_view_column_get_x_offset        (GtkTreeViewColumn       *tree_column);
 gint                    gtk_tree_view_column_get_width           (GtkTreeViewColumn       *tree_column);
 gint                    gtk_tree_view_column_get_fixed_width     (GtkTreeViewColumn       *tree_column);
 void                    gtk_tree_view_column_set_fixed_width     (GtkTreeViewColumn       *tree_column,